home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / util / text / megaed12.lha / MegaEdV1_2 / Trans / BLink6.7.trans.p < prev    next >
Text File  |  1992-09-02  |  2KB  |  123 lines

  1. PROGRAM PCQTrans;
  2.  
  3. {
  4.     Konvertiert BLink-Fehlerdateien für MegaEd
  5.     von Wurzelsepp, 100% PD
  6. }
  7.  
  8. {$I "include:exec/memory.i" }
  9. {$I "include:libraries/dosextens.i" }
  10. {$I "include:utils/Stringlib.i" }
  11.  
  12. CONST
  13.     file1   :   String  =   "T:MegaEdMake-ErrFile";
  14.     file2   :   String  =   "T:MegaEdMake-Errors";
  15.     size    :   String  =   "S";
  16.     ret     :   Char    =   CHR(10);
  17.     esc2    :   Char    =   CHR($9b);
  18.     esc     :   Char    =   CHR(27);
  19.  
  20.     ver_text : String = "\0$VER: MegaEd-TransBLink V1.0 (21.03.95)";
  21.  
  22. VAR
  23.     fileh       :   FileHandle;
  24.     las,
  25.     len,
  26.     dummy       :   INTEGER;
  27.     ansi        :   BOOLEAN;
  28.     old         :   Address;
  29.     oldoff      :   Char;
  30.     off         :   ^Char;
  31.  
  32. PROCEDURE TickleOn;
  33.  
  34. BEGIN
  35.  Inc(las);
  36.  off:=Address(Integer(off)+1);
  37. END;
  38.  
  39. BEGIN
  40.  
  41.  IF DeleteFile(file2) THEN ;
  42.  
  43.  fileh:=DOSOpen (file1,MODE_OLDFILE);
  44.  IF fileh<>NIL THEN
  45.  BEGIN
  46.   dummy:=Seek(fileh,0,OFFSET_END);
  47.   len:=Seek(fileh,0,OFFSET_BEGINNING);
  48.   if len>0 THEN
  49.   BEGIN
  50.    old:=AllocMem (len,MEMF_PUBLIC+MEMF_CLEAR);
  51.    IF old=NIL THEN
  52.    BEGIN
  53.     DOSClose (fileh);
  54.     Exit;
  55.    END;
  56.    IF DOSRead(fileh,old,len)<>len THEN
  57.    BEGIN
  58.     FreeMem(old,len);
  59.     DOSClose(fileh);
  60.     Exit;
  61.    END;
  62.   END;
  63.   DOSClose(fileh);
  64.   IF (len=0) THEN Exit;
  65.  
  66.   fileh:=DOSOpen (file2,MODE_NEWFILE);
  67.   IF fileh<>NIL THEN
  68.   BEGIN
  69.  
  70.    las:=0;
  71.    off:=old;
  72.    dummy:=0;
  73.    WHILE (las<len) AND (dummy<4) DO
  74.    BEGIN
  75.     IF off^=ret THEN Inc(dummy);
  76.     TickleOn;
  77.    END;
  78.    IF las<len THEN
  79.    BEGIN
  80.     IF off^<>ret THEN
  81.     BEGIN
  82.      ansi:=FALSE;
  83.      oldoff:=ret;
  84.      WHILE (las<len) AND ((oldoff<>ret) OR (off^<>ret)) DO
  85.      BEGIN
  86.       IF (off^=esc) OR (off^=esc2) THEN ansi:=TRUE;
  87.       IF ansi=FALSE THEN
  88.        dummy:=DOSWrite (fileh,off,1)
  89.       ELSE
  90.        IF off^='m' THEN ansi:=FALSE;
  91.       oldoff:=off^;
  92.       TickleOn;
  93.      END;
  94.     END
  95.     ELSE
  96.     BEGIN
  97.      TickleOn;
  98.      dummy:=1;
  99.      WHILE (dummy<38) AND (las<len) DO
  100.      BEGIN
  101.       Inc(dummy);
  102.       TickleOn;
  103.      END;
  104.      IF (las<len) THEN
  105.      BEGIN
  106.       dummy:=DOSWrite (fileh,size,StrLen(size));
  107.       WHILE (off^<>' ') AND (las<len) DO
  108.       BEGIN
  109.        dummy:=DOSWrite (fileh,off,1);
  110.        TickleOn;
  111.       END;
  112.      END;
  113.     END;
  114.    END;
  115.    DOSClose (fileh);
  116.   END;
  117.  
  118.   FreeMem(old,len);
  119.  
  120.  END;
  121.  
  122. END.
  123.